Model simulation has been a significant “tool” in the design and prediction of performance of real systems. Model simulation also serves to generate performance predictions for new system applications prior to their implementation. The need for model simulation is imperative for complex systems where the risks of designing the wrong system can be enormous.
Distributed simulations are simulation environments where the system at hand is partitioned into component submodels allocated to different computer workstations for execution.
Generally, distributed simulation necessitates that the cooperating workstations executing system submodels exchange time stamped event information; indicating at a minimum the next event each workstation is to execute as well as the scheduled time for the execution. The prior art deploys two types of models for distributed simulation: (a) “optimistic” models, and (b) “conservative” models.
Optimistic models do not attempt to sequence the execution of events processed by different processors. Instead, such models allow each workstation to execute its own event sequence assuming independence among the events processed by the different workstations. At the same time, these models implement mechanisms for detection of causality errors and subsequent recovery through rollback.
Conservative models, on the other hand, are based on complete avoidance of causality errors by implementing lookahead algorithms that identify interdependencies among events executed by different workstations. Thus, such models allow processing of an event by a workstation, only when it is determined that the event in question will not be affected by the results of events that are currently being processed or are to be processed next by the rest of the workstations.
Most notable among the shortcomings of the optimistic approach is the fact that the required detection and rollback mechanisms are very complex and difficult to implement.
Conservative models, while not incurring the aforementioned overheads and instabilities, do, however, require efficient and complex lookahead algorithms that identify and exploit event parallelism in order to achieve good performance. This is a serious problem considering that many applications do not allow the development of such efficient algorithms. Another problem with conservative models concerns the fact that users need to possess detailed knowledge of the deployed event synchronization scheme, so that they can “tune” the model for the particular application/experiment being simulated.
Another shortcoming, common to both classes of models, is their reliance on special (as opposed to commercial off-the-shelf) software developed for specialized research or applications programs. Yet another common shortcoming is that all workstations are required to run instances of the same simulator.
In view of the above, a need exists in the art for a generic mechanism which allows workstations running instances of the same or different simulators to communicate, and which provides simple detection and rollback mechanisms.